ns('JTigers.SVPN.Vista.Plan');
// / <summary>
// / Script de control de la vista Valida Plan
// / </summary>
// / <remarks>
// / Creacion: LOG(EMP) 201209 <br />
// / </remarks>
JTigers.SVPN.Vista.Plan.BuscaPlan = function(a) {

	var base = this;

	base.Inicializar = function() {
		'use strict';
		$('.ui-dialog').remove();
		base.Controles.VentanaDetallePlan().remove();
		$('body').append(
				'<div id="ventanaPlan" title="Detalle de Plan de Negocio">'
						+ '<div id="detallePlan"></div>' + '</div>');
		base.Controles.BotonBuscar().click(base.Eventos.BotonBuscarClick);
		base.Controles.BotonNuevoPlan().click(base.Eventos.BotonNuevoPlanClick);
		base.Controles.GridPlanes = new His.Util.Table('#planes', {
			aaSorting : [ [ 4, "desc" ] ],
			rowHandler : base.Eventos.TablaPlanNegocioClick
		});

		base.Controles.validadorCompra = new His.UI.Validator({
			form : 'frmCompra'
		});
		base.Controles.VentanaDetallePlan().dialog({
			autoOpen : false,
			height : 550,
			width : 450,
			modal : true
		});
	};

	base.Controles = {
		BotonBuscar : function() {
			return $('#btnBuscar');
		},
		BotonNuevoPlan : function() {
			return $('#btnNuevoPlan');
		},
		BotonGuardar : function() {
			return $('#btnGuardar');
		},
		BotonComprar : function() {
			return $('#btnComprar');
		},
		BotonPagar : function() {
			return $('#btnPagar');
		},
		BotonPregunta : function() {
			return $('#btnPregunta');
		},
		BotonCancelarComprar : function() {
			return $('#btnCancelar');
		},
		DivListado : function() {
			return $('#divListado');
		},
		VentanaDetallePlan : function() {
			return $('#ventanaPlan');
		},
		DivDetallePlan : function() {
			return $('#detallePlan');
		},
		DivDetalleFinanciero : function() {
			return $('#divDetalleFinancieros');
		},
		DivCompra : function() {
			return $('#divCompra');
		},
		DivOpcionCompra : function() {
			return $('#divOpcionCompra');
		},
		GridPlanes : null,
		validadorCompra : null,
		validadorRegistro : null,
		messageBox : new Belcorp.Planit.UI.MessageBox()
	};

	base.Eventos = {
		AjaxBuscarPlanRespuesta : function(data) {
			if (data != null) {
				base.Controles.DivListado().empty();
				base.Controles.DivListado().html(data);
				base.Controles.GridPlanes.refresh();
			}
		},
		AjaxDetallePlanRespuesta : function(data) {
			if (data != null) {
				base.Controles.DivDetallePlan().empty();
				base.Controles.DivDetallePlan().html(data);
				base.Controles.BotonGuardar().click(
						base.Eventos.BotonGuardarClick);

				base.Controles.BotonComprar().click(
						base.Eventos.BotonComprarClick);

				base.Controles.BotonCancelarComprar().click(
						base.Eventos.BotonCancelarComprarClick);

				base.Controles.validadorRegistro = new His.UI.Validator({
					form : 'frmPlan'
				});

				base.Controles.BotonPagar().click(base.Eventos.BotonPagarClick);
				base.Controles.validador = new His.UI.Validator({
					form : 'frmCompra'
				});

				base.Controles.BotonPregunta().click(
						base.Eventos.BotonPreguntaClick);

				base.Controles.VentanaDetallePlan().dialog('open');
			}
		},
		AjaxGuardarPlanRespuesta : function(data) {
			if (data != null) {
				base.Controles.VentanaDetallePlan().dialog('close');
				base.Invocaciones.AjaxBuscarPlan.submit();
			}
		},
		AjaxValidaCompraRespuesta : function(data) {
			if (data != null && data.idCompra == 0) {
				base.Controles.DivDetalleFinanciero().hide();
				base.Controles.DivOpcionCompra().hide();
				base.Controles.DivCompra().show();
			} else {
				base.Controles.messageBox
						.showAlert({
							title : 'Aviso',
							text : 'Usted ya adquirio el plan de negocio puede ver el detalle en la opcion compras.'
						});
			}
		},
		AjaxPagarPlanRespuesta : function(data) {
			if (data != null) {
				base.Controles.VentanaDetallePlan().dialog('close');
				base.Invocaciones.AjaxBuscarPlan.submit();
				window.open(JTigers.SVPN.Config.Context.Path
						+ 'completaCompra.html?id=' + data.idCompra,
						"confirmaCompra");
			}
		},
		BotonBuscarClick : function() {
			'use strict';
			base.Invocaciones.AjaxBuscarPlan.submit();
			return false;
		},
		BotonNuevoPlanClick : function() {
			'use strict';
			base.Invocaciones.AjaxNuevoPlan.data = 0;
			base.Invocaciones.AjaxNuevoPlan.submit();
			return false;
		},
		BotonGuardarClick : function() {
			'use strict';
			if (base.Controles.validadorRegistro.isValid()) {
				base.Invocaciones.AjaxGuardarPlan.form = 'frmPlan';
				base.Invocaciones.AjaxGuardarPlan.submit();
			}
			return false;
		},
		BotonComprarClick : function() {
			'use strict';
			base.Invocaciones.AjaxValidaCompra.form = 'frmCompra';
			base.Invocaciones.AjaxValidaCompra.submit();
			return false;
		},
		BotonCancelarComprarClick : function() {
			'use strict';
			base.Controles.DivDetalleFinanciero().show();
			base.Controles.DivOpcionCompra().show();
			base.Controles.DivCompra().hide();
			return false;
		},
		BotonPagarClick : function() {
			'use strict';
			if (base.Controles.validadorCompra.isValid()) {
				base.Invocaciones.AjaxPagarPlan.form = 'frmCompra';
				base.Invocaciones.AjaxPagarPlan.submit();
			}
			return false;
		},
		BotonPreguntaClick : function() {
			'use strict';
			var idPlanNegocio = $('#hdnIdPlan').val();
			indexPrincipal.Invocaciones.AjaxCargarVista.action = JTigers.SVPN.Config.Context.Path
					+ 'listaPregunta.html?id=' + idPlanNegocio;
			indexPrincipal.Invocaciones.AjaxCargarVista.submit();
			base.Controles.VentanaDetallePlan().dialog('destroy').remove();
			return false;
		},
		TablaPlanNegocioClick : function(id) {

			base.Invocaciones.AjaxDetallePlan.data = id;
			base.Invocaciones.AjaxDetallePlan.submit();
		}
	};

	base.Invocaciones = {
		AjaxBuscarPlan : new His.Util.Ajax({
			dataType : 'html',
			form : 'frmBuscarPlan',
			action : JTigers.SVPN.Config.Context.Path + 'listaPlan.html',
			autoSubmit : false,
			onSuccess : base.Eventos.AjaxBuscarPlanRespuesta
		}),
		AjaxDetallePlan : new His.Util.Ajax({
			dataType : 'html',
			action : JTigers.SVPN.Config.Context.Path + 'detallePlan.html',
			autoSubmit : false,
			onSuccess : base.Eventos.AjaxDetallePlanRespuesta
		}),
		AjaxNuevoPlan : new His.Util.Ajax({
			dataType : 'html',
			action : JTigers.SVPN.Config.Context.Path + 'nuevoPlan.html',
			autoSubmit : false,
			onSuccess : base.Eventos.AjaxDetallePlanRespuesta
		}),
		AjaxGuardarPlan : new His.Util.Ajax({
			autoSubmit : false,
			onSuccess : base.Eventos.AjaxGuardarPlanRespuesta
		}),
		AjaxValidaCompra : new His.Util.Ajax({
			autoSubmit : false,
			action : JTigers.SVPN.Config.Context.Path + 'validaCompra.html',
			onSuccess : base.Eventos.AjaxValidaCompraRespuesta
		}),
		AjaxPagarPlan : new His.Util.Ajax({
			autoSubmit : false,
			action : JTigers.SVPN.Config.Context.Path + 'registrarCompra.html',
			onSuccess : base.Eventos.AjaxPagarPlanRespuesta
		})
	};
};